import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts
# 读取数据
us_file = None
in_file = None
jp_file = None
try:
    us_file = open('D:\\其他学习\\python学习\\python黑马课堂资料\\资料\\第1-12章资料\\资料\\可视化案例数据\\折线图数据\\美国.txt', 'r', encoding='UTF-8')
    in_file = open('D:\\其他学习\\python学习\\python黑马课堂资料\\资料\\第1-12章资料\\资料\\可视化案例数据\\折线图数据\\印度.txt', 'r', encoding='UTF-8')
    jp_file = open('D:\\其他学习\\python学习\\python黑马课堂资料\\资料\\第1-12章资料\\资料\\可视化案例数据\\折线图数据\\日本.txt', 'r', encoding='UTF-8')
    # 美国数据
    us_data = us_file.read()
    us_data = us_data.replace('jsonp_1629344292311_69436(', '')[:-2]
    us_data = json.loads(us_data)['data'][0]['trend']

    # 印度数据
    in_data = in_file.read()
    in_data = in_data.replace('jsonp_1629350745930_63180(', '')[:-2]
    in_data = json.loads(in_data)['data'][0]['trend']

    # 日本数据
    jp_data = jp_file.read()
    jp_data=jp_data.replace('jsonp_1629350871167_29498(', '')[:-2]
    jp_data = json.loads(jp_data)['data'][0]['trend']

    # 获取X轴数据，X轴数据共用一份即可
    us_xaxis = us_data['updateDate'][:314]

    # 获取Y轴的数据
    us_yaxis = us_data['list'][0]['data'][:314]
    in_yaxis = in_data['list'][0]['data'][:314]
    jp_yaxis = jp_data['list'][0]['data'][:314]

    line = Line()
    # 获取折线图的X轴数据
    line.add_xaxis(us_xaxis)

    # 获取折线图的Y轴数据
    line.add_yaxis('美国新冠确诊数', us_yaxis, label_opts=LabelOpts(is_show=False))
    line.add_yaxis("印度新冠确认数", in_yaxis, label_opts=LabelOpts(is_show=False))
    line.add_yaxis("日本新冠确认数", jp_yaxis, label_opts=LabelOpts(is_show=False))

    # 设置全局配置
    line.set_global_opts(
        title_opts=TitleOpts(title="2022美印日新冠确证数", pos_left="center", pos_bottom="2%")
    )

    # 生成图标
    line.render("2022年美印日新冠确诊数.html")
except:
    print("文件读取异常")
finally:
    if us_file:
        us_file.close()
    if in_file:
        in_file.close()
    if jp_file:
        jp_file.close()
